/**
 * 
 */
package org.insia.smartposse.xfire.iservice;

import java.util.List;

import org.insia.smartposse.metier.webservice.LightCategory;
import org.insia.smartposse.metier.webservice.LightCategoryTheme;
import org.insia.smartposse.metier.webservice.LightProject;
import org.insia.smartposse.metier.webservice.LightProjectSkill;
import org.insia.smartposse.metier.webservice.LightProjectSkillAffectation;

/**
 * @author raguerri
 * @since 18 avr. 07
 * @version 0.0.1
 * 
 */
public interface IProjectService {
	
	/**
	 * 
	 * @param id
	 * @return LightProject the webservice representation of the Project object
	 */
	public LightProject get(long id);
	/**
	 * 
	 * @param id
	 * @return LightCategory the webservice representation of the Category object
	 */
	public LightCategory getCategory(long id);
	/**
	 * 
	 * @param id
	 * @return LightCategoryTheme the webservice representation of the CategoryTheme object
	 */
	public LightCategoryTheme getCategoryTheme(long id);
	/**
	 * @param lproject
	 * @return
	 */
	LightProject createLightProject(LightProject lproject);
	/**
	 * @param projectSet
	 * @return
	 */
	List<LightProject> createLightProject(List<LightProject> projectSet);
	/**
	 * @param lproject
	 * @return
	 */
	LightProject updateLightProject(LightProject lproject);
	/**
	 * @param projectSet
	 * @return
	 */
	List<LightProject> updateLightProject(List<LightProject> projectSet);
	/**
	 * @param projectSkillAffectation
	 * @return
	 */
	LightProjectSkillAffectation createLighProjectSkillAffectation(LightProjectSkillAffectation projectSkillAffectation);
	/**
	 * @param projectSkillAffectation
	 * @return
	 */
	LightProjectSkillAffectation updateLighProjectSkillAffectation(LightProjectSkillAffectation projectSkillAffectation);
	/**
	 * @param projectSkill
	 * @return
	 */
	LightProjectSkill createLightProjectSkill(LightProjectSkill projectSkill);
	/**
	 * @param projectSkill
	 * @return
	 */
	LightProjectSkill updateLightProjectSkill(LightProjectSkill projectSkill);
	/**
	 * @param projectSkills
	 * @return
	 */
	List<LightProjectSkill> createLightProjectSkill(List<LightProjectSkill> projectSkills);
	/**
	 * @param projectSkills
	 * @return
	 */
	List<LightProjectSkill> updateLightProjectSkill(List<LightProjectSkill> projectSkills);
}
